# 掌握re模块的快速使用
# 我们已经知道，可以使用re模块来操作正则表达式。
# re模块常用方法:
# 函数名
# 含义
# match(pattern，string)
# 返回一个已匹配成功的对象。其中，参数pattern表示正则字符串，参数string表示要匹配的内容。
# 当成功匹配数据后，结果存放在对象的函数：
# 函数名
# 含义
# group(num=o)
# 匹配成功的内容，num默认是o，表示匹配的所有数据结果。


# 匹配单个字符
'''
用的匹配单个字符的语法：
代码
功能
匹配除\n之外的任何单个字符。

匹配[]中列举的字符。
Id
匹配一个数字字符，比如[0-9]。
AD
匹配一个非数字字符，比如［^0-9］。
As
匹配任何空白字符。
AS
匹配任何非空白字符。
w
匹配非特殊字符，比如a-Z、A-Z、0-9、-、汉字。
w
匹配特殊字符，比如非字母、非数字、非汉字等。
'''


# 单个字符包括 .  []  \d \D \s \s   \W

import re

print(re.match('1[0-9]{10}$',"我17805272076"))
# import re
#
# print(re.match('^1[0-9]{10}$', "17805272076"))
# print(re.match('^1[0-9]{10}$',"19122914324"))







import re

# 例如，一起来完成：
# （1）使用.来匹配任意单个字符；
print(re.match('.', '\n')) # None
print(re.match('.', '\r')) # match='\r'
print(re.match('.', '你好')) # match='你'
print(re.match('.', 'hello')) # match='h'
# print(re.match('.', '')) #None (空字符串是没有任何内容的.正则操作它没有意义)


# （2）使用[a-z]、[A-Z]、`[^0-9]`分别来查看小写字母、大写字母、非数字；
print(re.match('[a-z]','agc')) # match='a'
print(re.match('[a-z]','gca')) # match='g'
print(re.match('[a-z]','6abc'))# None

print(re.match("[A-Z]",'abc')) #None
print(re.match("[A-Z]",'Abc'))# match='A'

print(re.match('[^0-9]','abc'))# match='a'
print(re.match('[^0-9]','$ab'))# match='$'
print(re.match('[^0-9]','6ab')) # None

print(re.match('[a-f3-9A-Z]','ddd')) #match='d'
print(re.match('[a-f3-9A-Z]','666')) #match='6'
print(re.match('[a-f3-9A-Z]','MMM')) #match='M'

# （3）使用\d来匹配一个数字字符； \d就是对[0-9]的简化方案.
print(re.match('\d','123'))# match='1'
print(re.match('\d','a123'))# None

# （4）使用\w来匹配一个可能有数字、大小写字母、下划线的单个字符。
print(re.match('\w','123'))# match='1'
print(re.match('\w','aaa'))# match='a'
print(re.match('\w','AAA'))# match='A'
print(re.match('\w','___'))# match='_'
print(re.match('\w','你好'))# match='你'
print(re.match('\w','$$$')) #None





